<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GimpModule: GIMP 3 Module Library Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GIMP 3 Module Library Reference Manual">
<link rel="up" href="pt01.html" title="Part I. GIMP Module Library">
<link rel="prev" href="pt01.html" title="Part I. GIMP Module Library">
<link rel="next" href="GimpModuleDB.html" title="GimpModuleDB">
<meta name="generator" content="GTK-Doc V1.33.0 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GimpModule.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GimpModule.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_signals">  <span class="dim">|</span> 
                  <a href="#GimpModule.signals" class="shortcut">Signals</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="pt01.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GimpModuleDB.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GimpModule"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GimpModule.top_of_page"></a>GimpModule</span></h2>
<p>GimpModule — A <span class="type">GTypeModule</span> subclass which implements module
loading using <span class="type">GModule</span>.</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GimpModule.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">const <a class="link" href="GimpModule.html#GimpModuleInfo" title="GimpModuleInfo"><span class="returnvalue">GimpModuleInfo</span></a> *
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="GimpModule.html#GimpModuleQueryFunc" title="GimpModuleQueryFunc ()">*GimpModuleQueryFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="GimpModule.html#GimpModuleRegisterFunc" title="GimpModuleRegisterFunc ()">*GimpModuleRegisterFunc</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GimpModule.html" title="GimpModule"><span class="returnvalue">GimpModule</span></a> *
</td>
<td class="function_name">
<a class="link" href="GimpModule.html#gimp-module-new" title="gimp_module_new ()">gimp_module_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GimpModule.html#gimp-module-query-module" title="gimp_module_query_module ()">gimp_module_query_module</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GFile</span> *
</td>
<td class="function_name">
<a class="link" href="GimpModule.html#gimp-module-get-file" title="gimp_module_get_file ()">gimp_module_get_file</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GimpModule.html#gimp-module-get-auto-load" title="gimp_module_get_auto_load ()">gimp_module_get_auto_load</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GimpModule.html#gimp-module-set-auto-load" title="gimp_module_set_auto_load ()">gimp_module_set_auto_load</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GimpModule.html#gimp-module-is-loaded" title="gimp_module_is_loaded ()">gimp_module_is_loaded</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GimpModule.html#gimp-module-is-on-disk" title="gimp_module_is_on_disk ()">gimp_module_is_on_disk</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a class="link" href="GimpModule.html#GimpModuleInfo" title="GimpModuleInfo"><span class="returnvalue">GimpModuleInfo</span></a> *
</td>
<td class="function_name">
<a class="link" href="GimpModule.html#gimp-module-get-info" title="gimp_module_get_info ()">gimp_module_get_info</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GimpModule.html#gimp-module-get-last-error" title="gimp_module_get_last_error ()">gimp_module_get_last_error</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GimpModule.html#GimpModuleState" title="enum GimpModuleState"><span class="returnvalue">GimpModuleState</span></a>
</td>
<td class="function_name">
<a class="link" href="GimpModule.html#gimp-module-get-state" title="gimp_module_get_state ()">gimp_module_get_state</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GQuark</span>
</td>
<td class="function_name">
<a class="link" href="GimpModule.html#gimp-module-error-quark" title="gimp_module_error_quark ()">gimp_module_error_quark</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GimpModule.signals"></a><h2>Signals</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="signal_proto_type">
<col width="300px" class="signal_proto_name">
<col width="200px" class="signal_proto_flags">
</colgroup>
<tbody><tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GimpModule.html#GimpModule-modified" title="The “modified” signal">modified</a></td>
<td class="signal_flags">Run First</td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GimpModule.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GimpModule.html#GimpModuleInfo" title="GimpModuleInfo">GimpModuleInfo</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GimpModule.html#GimpModuleState" title="enum GimpModuleState">GimpModuleState</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GimpModule.html#GIMP-MODULE-ERROR:CAPS" title="GIMP_MODULE_ERROR">GIMP_MODULE_ERROR</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GimpModule.html#GimpModuleError" title="enum GimpModuleError">GimpModuleError</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="GimpModule.html#GIMP-MODULE-ABI-VERSION:CAPS" title="GIMP_MODULE_ABI_VERSION">GIMP_MODULE_ABI_VERSION</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GimpModule.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    GObject
    <span class="lineart">╰──</span> GTypeModule
        <span class="lineart">╰──</span> GimpModule
</pre>
</div>
<div class="refsect1">
<a name="GimpModule.description"></a><h2>Description</h2>
<p><a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> is a generic mechanism to dynamically load modules into
GIMP. It is a <span class="type">GTypeModule</span> subclass, implementing module loading
using <span class="type">GModule</span>.  <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> does not know which functionality is
implemented by the modules, it just provides a framework to get
arbitrary <span class="type">GType</span> implementations loaded from disk.</p>
</div>
<div class="refsect1">
<a name="GimpModule.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="GimpModuleQueryFunc"></a><h3>GimpModuleQueryFunc ()</h3>
<pre class="programlisting">const <a class="link" href="GimpModule.html#GimpModuleInfo" title="GimpModuleInfo"><span class="returnvalue">GimpModuleInfo</span></a> *
<span class="c_punctuation">(</span>*GimpModuleQueryFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">GTypeModule</span> *module</code></em>);</pre>
<p>The signature of the query function a loadable GIMP module must
implement.  In the module, the function must be called
<code class="function">gimp_module_query()</code>.</p>
<p><a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> will copy the returned <a class="link" href="GimpModule.html#GimpModuleInfo" title="GimpModuleInfo"><span class="type">GimpModuleInfo</span></a> struct, so the
module doesn't need to keep these values around (however in most
cases the module will just return a pointer to a constant
structure).</p>
<div class="refsect3">
<a name="GimpModuleQueryFunc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>The <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> responsible for this loadable module.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GimpModuleQueryFunc.returns"></a><h4>Returns</h4>
<p>The <a class="link" href="GimpModule.html#GimpModuleInfo" title="GimpModuleInfo"><span class="type">GimpModuleInfo</span></a> struct describing the module.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GimpModuleRegisterFunc"></a><h3>GimpModuleRegisterFunc ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
<span class="c_punctuation">(</span>*GimpModuleRegisterFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">GTypeModule</span> *module</code></em>);</pre>
<p>The signature of the register function a loadable GIMP module must
implement.  In the module, the function must be called
<code class="function">gimp_module_register()</code>.</p>
<p>When this function is called, the module should register all the types
it implements with the passed <em class="parameter"><code>module</code></em>
.</p>
<div class="refsect3">
<a name="GimpModuleRegisterFunc.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>The <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> responsible for this loadable module.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GimpModuleRegisterFunc.returns"></a><h4>Returns</h4>
<p><code class="literal">TRUE</code> on success, <code class="literal">FALSE</code> otherwise.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gimp-module-new"></a><h3>gimp_module_new ()</h3>
<pre class="programlisting"><a class="link" href="GimpModule.html" title="GimpModule"><span class="returnvalue">GimpModule</span></a> *
gimp_module_new (<em class="parameter"><code><span class="type">GFile</span> *file</code></em>,
                 <em class="parameter"><code><span class="type">gboolean</span> auto_load</code></em>,
                 <em class="parameter"><code><span class="type">gboolean</span> verbose</code></em>);</pre>
<p>Creates a new <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> instance.</p>
<div class="refsect3">
<a name="gimp-module-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>file</p></td>
<td class="parameter_description"><p>A <span class="type">GFile</span> pointing to a loadable module.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>auto_load</p></td>
<td class="parameter_description"><p>Pass <code class="literal">TRUE</code> to exclude this module from auto-loading.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>verbose</p></td>
<td class="parameter_description"><p>Pass <code class="literal">TRUE</code> to enable debugging output.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-module-new.returns"></a><h4>Returns</h4>
<p> The new <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> object.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gimp-module-query-module"></a><h3>gimp_module_query_module ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gimp_module_query_module (<em class="parameter"><code><a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> *module</code></em>);</pre>
<p>Queries the module without actually registering any of the types it
may implement. After successful query, <a class="link" href="GimpModule.html#gimp-module-get-info" title="gimp_module_get_info ()"><code class="function">gimp_module_get_info()</code></a> can be
used to get further about the module.</p>
<div class="refsect3">
<a name="gimp-module-query-module.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-module-query-module.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> on success.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gimp-module-get-file"></a><h3>gimp_module_get_file ()</h3>
<pre class="programlisting"><span class="returnvalue">GFile</span> *
gimp_module_get_file (<em class="parameter"><code><a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> *module</code></em>);</pre>
<p>Returns <span class="type">GFile</span> of the <em class="parameter"><code>module</code></em>
,</p>
<div class="refsect3">
<a name="gimp-module-get-file.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-module-get-file.returns"></a><h4>Returns</h4>
<p>The <em class="parameter"><code>module</code></em>
's <span class="type">GFile</span>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-module-get-auto-load"></a><h3>gimp_module_get_auto_load ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gimp_module_get_auto_load (<em class="parameter"><code><a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> *module</code></em>);</pre>
<p>Returns whether this <em class="parameter"><code>module</code></em>
 in automatically loaded at startup.</p>
<div class="refsect3">
<a name="gimp-module-get-auto-load.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-module-get-auto-load.returns"></a><h4>Returns</h4>
<p> The <em class="parameter"><code>module</code></em>
's 'auto_load' property.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-module-set-auto-load"></a><h3>gimp_module_set_auto_load ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gimp_module_set_auto_load (<em class="parameter"><code><a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> *module</code></em>,
                           <em class="parameter"><code><span class="type">gboolean</span> auto_load</code></em>);</pre>
<p>Sets the <em class="parameter"><code>auto_load</code></em>
 property if the module. Emits "modified".</p>
<div class="refsect3">
<a name="gimp-module-set-auto-load.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>auto_load</p></td>
<td class="parameter_description"><p>Pass <code class="literal">FALSE</code> to exclude this module from auto-loading</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-module-is-loaded"></a><h3>gimp_module_is_loaded ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gimp_module_is_loaded (<em class="parameter"><code><a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> *module</code></em>);</pre>
<div class="refsect3">
<a name="gimp-module-is-loaded.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-module-is-loaded.returns"></a><h4>Returns</h4>
<p> Whether the <em class="parameter"><code>module</code></em>
is currently loaded.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-module-is-on-disk"></a><h3>gimp_module_is_on_disk ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gimp_module_is_on_disk (<em class="parameter"><code><a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> *module</code></em>);</pre>
<div class="refsect3">
<a name="gimp-module-is-on-disk.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-module-is-on-disk.returns"></a><h4>Returns</h4>
<p> Whether the <em class="parameter"><code>module</code></em>
is present on diak.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-module-get-info"></a><h3>gimp_module_get_info ()</h3>
<pre class="programlisting">const <a class="link" href="GimpModule.html#GimpModuleInfo" title="GimpModuleInfo"><span class="returnvalue">GimpModuleInfo</span></a> *
gimp_module_get_info (<em class="parameter"><code><a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> *module</code></em>);</pre>
<div class="refsect3">
<a name="gimp-module-get-info.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-module-get-info.returns"></a><h4>Returns</h4>
<p>The <em class="parameter"><code>module</code></em>
's <a class="link" href="GimpModule.html#GimpModuleInfo" title="GimpModuleInfo"><span class="type">GimpModuleInfo</span></a> as provided
by the actual module, or <code class="literal">NULL</code>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-module-get-last-error"></a><h3>gimp_module_get_last_error ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
gimp_module_get_last_error (<em class="parameter"><code><a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> *module</code></em>);</pre>
<div class="refsect3">
<a name="gimp-module-get-last-error.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-module-get-last-error.returns"></a><h4>Returns</h4>
<p> The <em class="parameter"><code>module</code></em>
's last error message.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-module-get-state"></a><h3>gimp_module_get_state ()</h3>
<pre class="programlisting"><a class="link" href="GimpModule.html#GimpModuleState" title="enum GimpModuleState"><span class="returnvalue">GimpModuleState</span></a>
gimp_module_get_state (<em class="parameter"><code><a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> *module</code></em>);</pre>
<div class="refsect3">
<a name="gimp-module-get-state.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>module</p></td>
<td class="parameter_description"><p>A <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gimp-module-get-state.returns"></a><h4>Returns</h4>
<p> The <em class="parameter"><code>module</code></em>
's state.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gimp-module-error-quark"></a><h3>gimp_module_error_quark ()</h3>
<pre class="programlisting"><span class="returnvalue">GQuark</span>
gimp_module_error_quark (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>This function is never called directly. Use <a class="link" href="GimpModule.html#GIMP-MODULE-ERROR:CAPS" title="GIMP_MODULE_ERROR"><code class="function">GIMP_MODULE_ERROR()</code></a> instead.</p>
<div class="refsect3">
<a name="gimp-module-error-quark.returns"></a><h4>Returns</h4>
<p> the <span class="type">GQuark</span> that defines the GIMP module error domain.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-2-8.html#api-index-2.8">2.8</a></p>
</div>
</div>
<div class="refsect1">
<a name="GimpModule.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GimpModuleInfo"></a><h3>GimpModuleInfo</h3>
<pre class="programlisting">typedef struct {
  guint32  abi_version;
  gchar   *purpose;
  gchar   *author;
  gchar   *version;
  gchar   *copyright;
  gchar   *date;
} GimpModuleInfo;
</pre>
<p>This structure contains information about a loadable module.</p>
<div class="refsect3">
<a name="GimpModuleInfo.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><span class="type">guint32</span> <em class="structfield"><code><a name="GimpModuleInfo.abi-version"></a>abi_version</code></em>;</p></td>
<td class="struct_member_description"><p>The <a class="link" href="GimpModule.html#GIMP-MODULE-ABI-VERSION:CAPS" title="GIMP_MODULE_ABI_VERSION"><span class="type">GIMP_MODULE_ABI_VERSION</span></a> the module was compiled against.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gchar</span> *<em class="structfield"><code><a name="GimpModuleInfo.purpose"></a>purpose</code></em>;</p></td>
<td class="struct_member_description"><p>The module's general purpose.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gchar</span> *<em class="structfield"><code><a name="GimpModuleInfo.author"></a>author</code></em>;</p></td>
<td class="struct_member_description"><p>The module's author.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gchar</span> *<em class="structfield"><code><a name="GimpModuleInfo.version"></a>version</code></em>;</p></td>
<td class="struct_member_description"><p>The module's version.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gchar</span> *<em class="structfield"><code><a name="GimpModuleInfo.copyright"></a>copyright</code></em>;</p></td>
<td class="struct_member_description"><p>The module's copyright.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gchar</span> *<em class="structfield"><code><a name="GimpModuleInfo.date"></a>date</code></em>;</p></td>
<td class="struct_member_description"><p>The module's release date.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GimpModuleState"></a><h3>enum GimpModuleState</h3>
<p>The possible states a <a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> can be in.</p>
<div class="refsect3">
<a name="GimpModuleState.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GIMP-MODULE-STATE-ERROR:CAPS"></a>GIMP_MODULE_STATE_ERROR</p></td>
<td class="enum_member_description">
<p>Missing <code class="function">gimp_module_register()</code> function
or other error.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GIMP-MODULE-STATE-LOADED:CAPS"></a>GIMP_MODULE_STATE_LOADED</p></td>
<td class="enum_member_description">
<p>An instance of a type implemented by
this module is allocated.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GIMP-MODULE-STATE-LOAD-FAILED:CAPS"></a>GIMP_MODULE_STATE_LOAD_FAILED</p></td>
<td class="enum_member_description">
<p>gimp_module_register() returned <code class="literal">FALSE</code>.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GIMP-MODULE-STATE-NOT-LOADED:CAPS"></a>GIMP_MODULE_STATE_NOT_LOADED</p></td>
<td class="enum_member_description">
<p>There are no instances allocated of
types implemented by this module.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GIMP-MODULE-ERROR:CAPS"></a><h3>GIMP_MODULE_ERROR</h3>
<pre class="programlisting">#define GIMP_MODULE_ERROR (gimp_module_error_quark ())
</pre>
</div>
<hr>
<div class="refsect2">
<a name="GimpModuleError"></a><h3>enum GimpModuleError</h3>
<p>Types of errors returned by modules</p>
<div class="refsect3">
<a name="GimpModuleError.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody><tr>
<td class="enum_member_name"><p><a name="GIMP-MODULE-FAILED:CAPS"></a>GIMP_MODULE_FAILED</p></td>
<td class="enum_member_description">
<p>Generic error condition</p>
</td>
<td class="enum_member_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GIMP-MODULE-ABI-VERSION:CAPS"></a><h3>GIMP_MODULE_ABI_VERSION</h3>
<pre class="programlisting">#define GIMP_MODULE_ABI_VERSION 0x0005
</pre>
<p>The version of the module system's ABI. Modules put this value into
<a class="link" href="GimpModule.html#GimpModuleInfo" title="GimpModuleInfo"><span class="type">GimpModuleInfo</span></a>'s <em class="parameter"><code>abi_version</code></em>
 field so the code loading the modules
can check if it was compiled against the same module ABI the modules
are compiled against.</p>
<p> GIMP_MODULE_ABI_VERSION is incremented each time one of the
 following changes:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>the libgimpmodule implementation (if the change affects modules).</p></li>
<li class="listitem"><p>one of the classes implemented by modules (currently <a href="/local/head/share/gtk-doc/html/libgimpwidgets3/GimpColorDisplay.html#GimpColorDisplay-struct"><span class="type">GimpColorDisplay</span></a>,
<a href="/local/head/share/gtk-doc/html/libgimpwidgets3/GimpColorSelector.html#GimpColorSelector-struct"><span class="type">GimpColorSelector</span></a> and <a href="/local/head/share/gtk-doc/html/libgimpwidgets3/GimpController.html#GimpController-struct"><span class="type">GimpController</span></a>).</p></li>
</ul></div>
</div>
</div>
<div class="refsect1">
<a name="GimpModule.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="GimpModule-modified"></a><h3>The <code class="literal">“modified”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GimpModule.html" title="GimpModule"><span class="type">GimpModule</span></a> *gimpmodule,
               <span class="type">gpointer</span>    user_data)</pre>
<p>Flags: Run First</p>
</div>
</div>
<div class="refsect1">
<a name="GimpModule.see-also"></a><h2>See Also</h2>
<p><span class="type">GModule</span>, <span class="type">GTypeModule</span></p>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.0</div>
</body>
</html>